package sistemadecompras.datos;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Savepoint;
import javax.swing.JOptionPane;

/**
 *
 * @author oza
 */
public class DatabaseManager {

    private Connection connection;
    private Savepoint svpt;

    //crea la conexion
    public DatabaseManager() {//localhost la misma pc
        //autocommit si esta en true, se almacena automaticamente cuando saco algo
        //si esta en false, no guarda automaticamente, sirve para actualizar cambios cuando yo quiero, no simempre
        try {
            //String i = JOptionPane.showInputDialog("Ingrese el Password de la Base");
            //System.out.println(i);




            String url = "jdbc:postgresql://localhost/BaseEjemplo?user=postgres&password=pac_08ev";




            System.out.println(url);
            connection = DriverManager.getConnection(url);
            connection.setAutoCommit(false);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //rollback borre todo lo que he hecho desde la ultima vez q se guardo, hasta un comit anterior
    }

    public void commit() {
        try {
            connection.commit();
            svpt = connection.setSavepoint();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public Connection getConnection() {
        return connection;
    }
    //en caso que necesite hacer conexiones paralelas

    public void openConnectionTo(String url) {
        try {
            connection = DriverManager.getConnection(url, "postgres", "clave");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //borrar todo lo hecho

    public void rollBack() {
        try {
            if (svpt != null) {
                connection.rollback(svpt);
                connection.commit();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
